1. Field of the Invention
Embodiments of the present invention generally relate to accessing memory that stores compressed and non-compressed data and, more specifically, to determining whether or not the data is compressed or non-compressed before memory accesses are arbitrated.
2. Description of the Related Art
Graphics data may be stored in a compressed format in order to reduce the memory bandwidth needed to access the graphics data. Some portions of the graphics data may be compressed and other portions of the graphics data may be non-compressed. Reading or writing the compressed graphics data requires less memory bandwidth than reading or writing the non-compressed graphics data. Therefore, a graphics surface may be stored as a combination of non-compressed and compressed graphics data and the state of each portion may be tracked. When multiple clients access the memory, the state of each portion is updated as the graphics data changed from compressed to non-compressed. Before specifying the size of a memory access request a client needs to accurately determine whether or not graphics data is being read from or written to a compressed portion of the memory. If a read request is constructed assuming that a particular portion of memory is compressed and the state of the particular portion changes from compressed to non-compressed before the read request is processed then non-compressed graphics data will be returned and incorrectly treated as compressed data.
Accordingly, it is desirable to accurately determine whether or not a portion of memory being accessed by a client is compressed or non-compressed prior to constructing a memory access request to read or write graphics data stored in the portion of memory.